A bilateral filter is a non-linear filter applied to an image in the spatial and intensity domain. A fast bilateral filter is important for many computer vision applications. Several methods are known for decomposing non-linear filters into separable one-dimensional filters, or cascaded representations to reduce processing time. This can be done by using of either an eigenvalue expansion of the 2D filter kernel, or application of a singular value decomposition (SVD). A number of methods aim to benefit from the parallel processing and reconfigurable hardware.
The bilateral filter is a non-iterative means for smoothing images while retaining edge detail. The filtering involves a weighted convolution, wherein the weight for each pixel depends not only on its distance from the center pixel, but also its intensity. A Bayesian approach is also in the core of the bilateral filter and described the bilateral filtering as a single iteration of a diagonal normalized steepest descent process.
A fundamental property of bilateral filters is the processing time per pixel, as a function of the (spatial) filter radius r. This corresponds to the performance of the method as the filter radius (or kernel size) varies. The performance is the primary differentiating characteristic among bilateral filtering methods.
Due to the joint spatial and range filtering, the bilateral filters are computationally demanding. For reference, a brute-force implementation can calculate each output pixel in exponential O(r2) time and becomes impractical for even moderate filter radii. The well known Photoshop© CS2's Surface Blur implementation, which is a bilateral filter, has a linear O(r) time performance similar to a column-row histograms used by median filters.
The bilateral filter can be approximated by filtering subsampled copies of the image with discrete intensity kernels, and combining the filter responses using linear interpolation. In other words, that method treats the intensity image as a 3D surface, applies Gaussian smoothing to binary and intensity modulated surfaces, divides the intensities to determine the filtered intensity values at the original surface location. The method becomes faster as the radius increases due to the greater subsampling of the surface. The exact output depends on the phase of the subsampling grid. However, the discretization leads to loss of precision, particularly in high dynamic range (HDR) images.
One of the fastest prior art bilateral filter implementation converges to logarithmic O(log r) time, see Weiss, “Fast median and bilateral filtering,” Proc. SIGGRAPH, pages 519-526 2006, incorporated herein by reference. That method uses a hierarchy of partial distributed histograms in a tier-based approach. Even though the complexity has been lowered, simplicity has been lost due to the relatively small filter size and histogram count specific implementation requirements. That method is limited to rectangular spatial kernels and box filters. Another concern is the imperfect frequency response of that spatial box filter.